package com.gopay.common.domain.cbrmb.customs.base;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

import com.gopay.common.constants.cbrmb.customs.NameSpace;

/**
 * 
 * @ClassName: PaymentHead 
 * @Description: 支付单业务节点描述 
 * @author gd.cui 
 * @date 2017年1月14日 上午10:04:02
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "guid", "appType", "appTime", "appStatus", "payCode", "payName", "payTransactionId",
		"orderNo", "ebpCode", "ebpName", "payerIdType", "payerIdNumber", "payerName", "telephone", "amountPaid",
		"currency", "payTime", "note" })
@XmlRootElement(name = "PaymentHead", namespace = NameSpace.NAMESPACE_CEB_URI)
public class PaymentHead {

	/**
	 * 企业系统生成36位唯一序号（英文字母大写）
	 */
	@XmlElement(name = "guid", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String guid;

	/**
	 * 企业报送类型。1-新增 2-变更 3-删除。默认为1。
	 */
	@XmlElement(name = "appType", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String appType;

	/**
	 * 企业报送时间。格式:YYYYMMDDhhmmss。
	 */
	@XmlElement(name = "appTime", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String appTime;

	/**
	 * 业务状态:1-暂存,2-申报,默认为2。
	 */
	@XmlElement(name = "appStatus", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String appStatus;

	/**
	 * 支付企业的海关注册登记编号。
	 */
	@XmlElement(name = "payCode", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String payCode;

	/**
	 * 支付企业在海关注册登记的名称。
	 */
	@XmlElement(name = "payName", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String payName;

	/**
	 * 支付企业唯一的支付流水号。
	 */
	@XmlElement(name = "payTransactionId", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String payTransactionId;

	/**
	 * 交易平台的订单编号，同一交易平台的订单编号应唯一。订单编号长度不能超过60位。
	 */
	@XmlElement(name = "orderNo", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String orderNo;

	/**
	 * 电商平台的海关注册登记编号；电商平台未在海关注册登记，由电商企业发送订单的，以中国电子口岸发布的电商平台标识编号为准。
	 */
	@XmlElement(name = "ebpCode", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String ebpCode;

	/**
	 * 电商平台的海关注册登记名称；电商平台未在海关注册登记，由电商企业发送订单的，以中国电子口岸发布的电商平台名称为准。
	 */
	@XmlElement(name = "ebpName", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String ebpName;

	/**
	 * 1-身份证,2-其它。限定为身份证，填写“1”。
	 */
	@XmlElement(name = "payerIdType", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String payerIdType;

	/**
	 * 支付人的身份证件号码。
	 */
	@XmlElement(name = "payerIdNumber", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String payerIdNumber;

	/**
	 * 支付人的真实姓名。
	 */
	@XmlElement(name = "payerName", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String payerName;

	/**
	 * 支付人的电话号码。
	 */
	@XmlElement(name = "telephone", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String telephone;

	/**
	 * 支付金额。
	 */
	@XmlElement(name = "amountPaid", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String amountPaid;

	/**
	 * 限定为人民币，填写“142”。
	 */
	@XmlElement(name = "currency", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String currency;

	/**
	 * 支付时间，格式:YYYYMMDDhhmmss。
	 */
	@XmlElement(name = "payTime", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String payTime;

	/**
	 * 备注
	 */
	@XmlElement(name = "note", namespace = NameSpace.NAMESPACE_CEB_URI, required = true)
	private String note;

	public String getGuid() {
		return guid;
	}

	public void setGuid(String guid) {
		this.guid = guid;
	}

	public String getAppType() {
		return appType;
	}

	public void setAppType(String appType) {
		this.appType = appType;
	}

	public String getAppTime() {
		return appTime;
	}

	public void setAppTime(String appTime) {
		this.appTime = appTime;
	}

	public String getAppStatus() {
		return appStatus;
	}

	public void setAppStatus(String appStatus) {
		this.appStatus = appStatus;
	}

	public String getPayCode() {
		return payCode;
	}

	public void setPayCode(String payCode) {
		this.payCode = payCode;
	}

	public String getPayName() {
		return payName;
	}

	public void setPayName(String payName) {
		this.payName = payName;
	}

	public String getPayTransactionId() {
		return payTransactionId;
	}

	public void setPayTransactionId(String payTransactionId) {
		this.payTransactionId = payTransactionId;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getEbpCode() {
		return ebpCode;
	}

	public void setEbpCode(String ebpCode) {
		this.ebpCode = ebpCode;
	}

	public String getEbpName() {
		return ebpName;
	}

	public void setEbpName(String ebpName) {
		this.ebpName = ebpName;
	}

	public String getPayerIdType() {
		return payerIdType;
	}

	public void setPayerIdType(String payerIdType) {
		this.payerIdType = payerIdType;
	}

	public String getPayerIdNumber() {
		return payerIdNumber;
	}

	public void setPayerIdNumber(String payerIdNumber) {
		this.payerIdNumber = payerIdNumber;
	}

	public String getPayerName() {
		return payerName;
	}

	public void setPayerName(String payerName) {
		this.payerName = payerName;
	}

	public String getTelephone() {
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	public String getAmountPaid() {
		return amountPaid;
	}

	public void setAmountPaid(String amountPaid) {
		this.amountPaid = amountPaid;
	}

	public String getCurrency() {
		return currency;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}

	public String getPayTime() {
		return payTime;
	}

	public void setPayTime(String payTime) {
		this.payTime = payTime;
	}

	public String getNote() {
		return note;
	}

	public void setNote(String note) {
		this.note = note;
	}

}
